[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[tool.black]
line-length = 120
target-version = ["py39"]

[tool.isort]
profile = "black"

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]

[tool.pyright]
include = ["genshin"]
exclude = ["**/__init__.py", "tests/**"]

typeCheckingMode = "strict"
reportMissingTypeStubs = "none"
reportImportCycles = "none"
reportIncompatibleMethodOverride = "none"  # This relies on ordering for keyword-only arguments
reportUnusedFunction = "none"  # Makes usage of validators impossible
reportPrivateUsage = "none"
reportUnknownMemberType = "none"
reportUntypedFunctionDecorator = "none"
reportIncompatibleVariableOverride = "none"

[tool.mypy]
warn_unreachable = false

disallow_untyped_defs = true
ignore_missing_imports = true

# pyright
warn_unused_ignores = false
warn_redundant_casts = false
allow_redefinition = true
disable_error_code = ["return-value"]


[tool.coverage.run]
source = ["genshin"]
omit = ["**/__init__.py", "**/__main__.py"]

[tool.coverage.report]
show_missing = true
skip_covered = false
sort = "cover"
